#ifndef COMMON_H_INCLUDED
#define COMMON_H_INCLUDED

#include <cstdlib>
#include <iostream>
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include <allegro5/allegro_native_dialog.h>
#include <allegro5/allegro_font.h>
#include <allegro5/allegro_ttf.h>
#include "resources.h"

#define DISPLAY_W 640
#define DISPLAY_H 480

#define BLOCK_W 40
#define BLOCK_H 40

#define BOARD_ROWS 12
#define BOARD_COLS 12

#define FPS 4

extern ALLEGRO_DISPLAY *display;
extern ALLEGRO_EVENT_QUEUE *event_queue;
extern ALLEGRO_EVENT_QUEUE *event_queue2;
extern ALLEGRO_TIMER *timer;

enum { UP, RIGHT, DOWN, LEFT };
enum { FLOOR, WALL, BOX, TARGET, EMPTY };
enum { NORTH, EAST, SOUTH, WEST };

class Block;

typedef std::vector<Block*>  rowBlock;
typedef std::vector< rowBlock > matrixBlock;

#endif // COMMON_H_INCLUDED
